﻿using System;
using System.ComponentModel;
using System.Text;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Basic4Net.Controls
{
	/// <summary>
	/// 功能：扩展Button控件
	/// 修改记录：1.2007-06-20 添加DisabledWhenSubmit和SubmitText属性，点击按钮时置灰并显示SubmitText属性;
	///           2.2007-07-02 添加ConfirmMsg属性，点击按钮时提示确认信息ConfirmMsg;
	///           3.2007-07-04 添加CheckSaved属性，点击按钮后是否检查当前页面是否已保存;
	/// <see cref="System.Web.UI.WebControls.Button"/>
	/// </summary>
	[ToolboxData("<{0}:BNButton runat=\"server\"></{0}:BNButton>")]
	public class BNButton : Button
	{
		#region property

		private bool _DisabledWhenSubmit;
		/// <summary>
		/// 当点击按钮后是否把按钮置为不可用，默认为false
		/// </summary>
		[Category("CustProperty"),
		Description("当点击按钮后是否把按钮置为不可用，默认为false"),
		DefaultValue(false)]
		public bool DisabledWhenSubmit
		{
			get
			{
				return _DisabledWhenSubmit;
			}
			set
			{
				_DisabledWhenSubmit = value;
			}
		}

		private string _SubmitText;
		/// <summary>
		/// 当点击按钮后的文本内容，默认为空（不改变文本内容）
		/// </summary>
		[Category("CustProperty"),
		Description("当点击按钮后的文本内容，默认为空（不改变文本内容）"),
		DefaultValue("")]
		public string SubmitText
		{
			get
			{
				return _SubmitText;
			}
			set
			{
				_SubmitText = value;
			}
		}

		private string _ConfirmMsg;
		/// <summary>
		/// 当点击按钮后出现的提示确认信息，默认为空（不提示信息）
		/// </summary>
		[Category("CustProperty"),
		Description("当点击按钮后出现的提示确认信息，默认为空（不提示信息）"),
		DefaultValue("")]
		public string ConfirmMsg
		{
			get
			{
				return _ConfirmMsg;
			}
			set
			{
				_ConfirmMsg = value;
			}
		}

		private bool _CheckSaved = true;
		/// <summary>
		/// 当点击按钮后是否检查当前页面是否已保存，默认为true（检查）
		/// </summary>
		[Category("CustProperty"),
		Description("当点击按钮后是否检查当前页面是否已保存，默认为true（检查）"),
		DefaultValue(true)]
		public bool CheckSaved
		{
			get
			{
				return _CheckSaved;
			}
			set
			{
				_CheckSaved = value;
			}
		}

		private string _CheckSavedMsg = string.Empty;
		/// <summary>
		/// CheckSaved为true显示的confirm提示信息，如果不设置或为空，则显示Page的提示信息
		/// </summary>
		[Category("CustProperty"),
		Description("CheckSaved为true显示的confirm提示信息，如果不设置或为空，则显示Page的提示信息"),
		DefaultValue("")]
		public string CheckSavedMsg
		{
			get
			{
				return _CheckSavedMsg;
			}
			set
			{
				_CheckSavedMsg = value;
			}
		}

		#endregion

		/// <summary>
		/// 静态方法，确保加入的js脚本以;结尾
		/// </summary>
		/// <param name="value">js脚本字符串</param>
		/// <returns>处理后的js脚本字符串</returns>
		internal static string EnsureEndWithSemiColon(string value)
		{
			if (value != null)
			{
				int num1 = value.Length;
				if ((num1 > 0) && (value[(num1 - 1)] != ';'))
				{
					return value + ";";
				}
			}
			return value;
		}
	}
}

